package _12_数值的整数次方;

/**
 * 题目描述
 * 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
 */

/**
 * 思路
 *      递归调用，当指数为0时，输出1，否则先调用递归函数，找到一半指数的值，如果指数是偶数，返回half的平方
 *      否则返回 base*half*half
 */
public class Solution {
    public double Power(double base, int exponent) {
        if(exponent<0){
            return 1/pow(base,-exponent);
        }
        else return pow(base,exponent);
    }
    double pow(double base,int e){
        if(e==0) return 1;
        double half = pow(base,e>>1);
        if(e%2==0) return half*half;
        return base*half*half;

    }
}
